package com.soul.dubbo.api.mongo;

import com.soul.model.mongo.UserLike;
import com.soul.model.vo.PageResult;

import java.util.List;

/**
 * @author mdoya
 * @version 1.0
 * @description:
 */
public interface UserLikeApi {
    /**
     *  探花 - 右滑 flag:true 喜欢 false:不喜欢
     * @param userLike 佳人id
     * @return
     */
    Boolean love(UserLike userLike);

    /**
     *  查询用户是否喜欢
     * @param userId
     * @param visitorUserId
     * @return
     */
    UserLike findUserAlreadyLove(Long userId, Long visitorUserId);

    /**
     *  查询相互喜欢
     * @param page
     * @param pagesize
     * @param currendUserId
     * @return
     */
    PageResult<UserLike> findUserAlreadyLovePage(Long page, Long pagesize, Long currendUserId, List<Long> userInfoIdsList);

    /**
     *  查询喜欢的人
     * @param page
     * @param pagesize
     * @param currendUserId
     * @param userInfoIds
     * @return
     */
    PageResult<UserLike> findLikeUser(Long page, Long pagesize, Long currendUserId, List<Long> userInfoIds);

    /**
     *  互相喜欢 - 统计
     * @param currendUserId
     * @return
     */
    Integer findEachLoveCount(Long currendUserId);

    /**
     *  喜欢 自己关注别人 - 统计
     * @param currendUserId
     * @return
     */
    Integer findLoveCount(Long currendUserId);

    /**
     *  粉丝 别人关注 - 统计
     * @param currendUserId
     * @return
     */
    Integer findFanCount(Long currendUserId);

    /**
     *  查询粉丝和条件查询粉丝
     * @param page
     * @param pagesize
     * @param currendUserId
     * @param infoIds
     * @return
     */
    PageResult<UserLike> findFanUserLike(Long page, Long pagesize, Long currendUserId, List<Long> infoIds);
}
